package br.siseventos.model;
// Generated 18/08/2012 11:34:56 by Hibernate Tools 3.2.1.GA

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * TbEvento generated by hbm2java
 */
@Entity
@Table(name = "tb_evento", catalog = "SisEventosDB")
public class TbEvento implements java.io.Serializable {

    private Integer idtEvento;
    private TdTipoEvento tdTipoEvento;
    private String nmeEvento;
    private String dscEvento;
    private Date dtaInicioEvento;
    private Date dtaTerminoEvento;
    private char stsEvento;
    private String dscStsEvento;
    private Date dtaInclusaoEvento;
    private Set<TbAtividade> tbAtividades = new HashSet<TbAtividade>(0);
    private Set<TaItemAvaliacaoEvento> taItemAvaliacaoEventos = new HashSet<TaItemAvaliacaoEvento>(0);
    private Set<TbInscricao> tbInscricaos = new HashSet<TbInscricao>(0);
    private Set<TaPublicoEvento> taPublicoEventos = new HashSet<TaPublicoEvento>(0);

    public TbEvento() {
    }

    public TbEvento(TdTipoEvento tdTipoEvento, String nmeEvento, String dscEvento, Date dtaInicioEvento, Date dtaTerminoEvento, char stsEvento, Date dtaInclusaoEvento) {
        this.tdTipoEvento = tdTipoEvento;
        this.nmeEvento = nmeEvento;
        this.dscEvento = dscEvento;
        this.dtaInicioEvento = dtaInicioEvento;
        this.dtaTerminoEvento = dtaTerminoEvento;
        this.stsEvento = stsEvento;
        this.dtaInclusaoEvento = dtaInclusaoEvento;
    }

    public TbEvento(TdTipoEvento tdTipoEvento, String nmeEvento, String dscEvento, Date dtaInicioEvento, Date dtaTerminoEvento, char stsEvento, String dscStsEvento, Date dtaInclusaoEvento, Set<TbAtividade> tbAtividades, Set<TaItemAvaliacaoEvento> taItemAvaliacaoEventos, Set<TbInscricao> tbInscricaos, Set<TaPublicoEvento> taPublicoEventos) {
        this.tdTipoEvento = tdTipoEvento;
        this.nmeEvento = nmeEvento;
        this.dscEvento = dscEvento;
        this.dtaInicioEvento = dtaInicioEvento;
        this.dtaTerminoEvento = dtaTerminoEvento;
        this.stsEvento = stsEvento;
        this.dscStsEvento = dscStsEvento;
        this.dtaInclusaoEvento = dtaInclusaoEvento;
        this.tbAtividades = tbAtividades;
        this.taItemAvaliacaoEventos = taItemAvaliacaoEventos;
        this.tbInscricaos = tbInscricaos;
        this.taPublicoEventos = taPublicoEventos;
    }

    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "idt_evento", unique = true, nullable = false)
    public Integer getIdtEvento() {
        return this.idtEvento;
    }

    public void setIdtEvento(Integer idtEvento) {
        this.idtEvento = idtEvento;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "cod_tipo_evento", nullable = false)
    public TdTipoEvento getTdTipoEvento() {
        return this.tdTipoEvento;
    }

    public void setTdTipoEvento(TdTipoEvento tdTipoEvento) {
        this.tdTipoEvento = tdTipoEvento;
    }

    @Column(name = "nme_evento", nullable = false, length = 80)
    public String getNmeEvento() {
        return this.nmeEvento;
    }

    public void setNmeEvento(String nmeEvento) {
        this.nmeEvento = nmeEvento;
    }

    @Column(name = "dsc_evento", nullable = false, length = 250)
    public String getDscEvento() {
        return this.dscEvento;
    }

    public void setDscEvento(String dscEvento) {
        this.dscEvento = dscEvento;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "dta_inicio_evento", nullable = false, length = 19)
    public Date getDtaInicioEvento() {
        return this.dtaInicioEvento;
    }

    public void setDtaInicioEvento(Date dtaInicioEvento) {
        this.dtaInicioEvento = dtaInicioEvento;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "dta_termino_evento", nullable = false, length = 19)
    public Date getDtaTerminoEvento() {
        return this.dtaTerminoEvento;
    }

    public void setDtaTerminoEvento(Date dtaTerminoEvento) {
        this.dtaTerminoEvento = dtaTerminoEvento;
    }

    @Column(name = "sts_evento", nullable = false, length = 1)
    public char getStsEvento() {
        return this.stsEvento;
    }

    public void setStsEvento(char stsEvento) {
        this.stsEvento = stsEvento;
    }

    @Column(name = "dsc_sts_evento", length = 200)
    public String getDscStsEvento() {
        return this.dscStsEvento;
    }

    public void setDscStsEvento(String dscStsEvento) {
        this.dscStsEvento = dscStsEvento;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "dta_inclusao_evento", nullable = false, length = 19)
    public Date getDtaInclusaoEvento() {
        return this.dtaInclusaoEvento;
    }

    public void setDtaInclusaoEvento(Date dtaInclusaoEvento) {
        this.dtaInclusaoEvento = dtaInclusaoEvento;
    }

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "tbEvento")
    public Set<TbAtividade> getTbAtividades() {
        return this.tbAtividades;
    }

    public void setTbAtividades(Set<TbAtividade> tbAtividades) {
        this.tbAtividades = tbAtividades;
    }

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "tbEvento")
    public Set<TaItemAvaliacaoEvento> getTaItemAvaliacaoEventos() {
        return this.taItemAvaliacaoEventos;
    }

    public void setTaItemAvaliacaoEventos(Set<TaItemAvaliacaoEvento> taItemAvaliacaoEventos) {
        this.taItemAvaliacaoEventos = taItemAvaliacaoEventos;
    }

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "tbEvento")
    public Set<TbInscricao> getTbInscricaos() {
        return this.tbInscricaos;
    }

    public void setTbInscricaos(Set<TbInscricao> tbInscricaos) {
        this.tbInscricaos = tbInscricaos;
    }

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "tbEvento")
    public Set<TaPublicoEvento> getTaPublicoEventos() {
        return this.taPublicoEventos;
    }

    public void setTaPublicoEventos(Set<TaPublicoEvento> taPublicoEventos) {
        this.taPublicoEventos = taPublicoEventos;
    }
    
    @Override
    public String toString(){
        return  getIdtEvento() + "-" + getNmeEvento() + ", " + getDtaInicioEvento().toLocaleString();
    }
}
